package config

import (
	"bytes"
	"errors"
	"fmt"
	"github.com/BurntSushi/toml"
	"os"
	"path/filepath"
)

type WEBConfig struct {
	Port        int    `json:"port" toml:"port"`
	ServerMode  string `json:"serverMode" toml:"serverMode"`
	UseRecovery bool   `json:"useRecovery" toml:"useRecovery"`
}

var WebConfig *WEBConfig

func InitWebConfig() {
	//读取配置文件部分
	filePath, err := filepath.Abs("./config/web_config.toml")
	if err != nil {
		panic(err)
	}
	if _, err := toml.DecodeFile(filePath, &WebConfig); err != nil {
		fmt.Println(err.Error())
		panic(errors.New("web配置文件读取失败"))
	}
}

// UpdateWebConfig 更新写入配置文件
func (c *WEBConfig) UpdateWebConfig() bool {
	buf := new(bytes.Buffer)
	err := toml.NewEncoder(buf).Encode(c)
	if err != nil {
		fmt.Println(err)
	}
	err = os.WriteFile("./config/web_config.toml", buf.Bytes(), 0777)
	if err != nil {
		fmt.Println("配置文件写入失败", err.Error())
		return false
	}
	return true
}
